
/* 路由菜单 */
import type { Filter } from '@/type/User'
export interface RouteMenu {
  children: RouteMenu[],
  /* 菜单Id */
  menuId: string,
  /* 菜单名称 */
  menuName: string,
  /* 父Id */
  parentId?: string,
  /* 权限 */
  perms?: string,
  /* 路径 */
  path?: string,
  /* 是否外链 */
  isFrame?: number,
  /* 菜单类型 */
  menuType?: string,
  /* 按钮类型 */
  btnType?: string,
  /* 是否隐藏 */
  visible?: number,
  /* 菜单状态 */
  status?: number,
  /* 图标 */
  icon?: string,
  /* 创建时间 */
  gmtCreate?: string,
  /* 修改时间 */
  gmtModify?: string,
  /* 备注 */
  remark?: string,
  /* 排序编号 */
  orderNum?: number,
  /* 创建人 */
  createBy?: string,
  /* 修改人 */
  modifyBy?: string,
  /* 组件 */
  component?: string,
}


/* 菜单视图信息 */
export interface MenuVo {
  /* 菜单Id */
  menuId: string,
  /* 菜单名称 */
  menuName: string,
  /* 父Id */
  parentId: string,
  /* 权限 */
  perms: string,
  /* 路径 */
  path: string | null,
  /* 是否外链 */
  isFrame: number,
  /* 菜单类型 */
  menuType: string,
  /* 按钮类型 */
  btnType: string,
  /* 是否隐藏 */
  visible: number,
  /* 菜单状态 */
  status: number,
  /* 图标 */
  icon: string,
  /* 创建时间 */
  gmtCreate: string,
  /* 修改时间 */
  gmtModify: string,
  /* 备注 */
  remark: string,
  /* 排序编号 */
  orderNum: number,
  /* 创建人 */
  createBy: string,
  /* 修改人 */
  modifyBy: string,
  /* 组件 */
  component: string | null,
}

/* 选项卡菜单 */
export interface TabMenu {
  innerId: string,
  path: string,
  componentId: string,
  menu: RouteMenu
}

/* 菜单列表检索 */
export interface MenuFilter extends Filter {
  menuName: string | null,
  perms: string | null,
  isFrame: number | null,
  parentId: number | null,
  menuType: string | null,
  visible: number | null,
  status: number | null,
  menuTypes?: string[]
}